1. Field of the Invention
The present invention relates generally to systems and methods for demultiplexing Time Division Multiplexed (TDM) data streams comprising MPEG encoded data, and particularly, to a system and method for de-multiplexing Constant Bit Rate (CBR) encoded multimedia content transmitted over a channel utilizing fixed packet size TDM.
2. Discussion of the Prior Art
The process of preparing content for (Constant Bit Rate) xe2x80x9cCBRxe2x80x9d transmission is closely related to the encoding mechanism utilized. The CBR process forces the encoder to produce an output bit rate lower than or equal to the target bit rate, after which sufficient IDLE data is added to any output featuring a bit rate less than required in order to achieve CBR. When multiplexing multiple CBR sources into a shared channel utilizing TDM, the TDM channel is filled with IDLE data filling up to capacity depending upon the transmission protocol. Physical layers such as, DVB-SPI (digital video broadcast) deployed in system protocols such as MPEG-II Transport Stream defined in the ISO/IEC 13818 standard, leave IDLE data generated by the TDM mechanism and IDLE data present in the CBR encoded content indistinguishable. Generally, IDLE data generated by either of the two mechanisms is immediately discarded upon reception by the receiver, as is the case with de-multiplexers implemented along with MPEG-II decoders, as the sole reason for the presence of such IDLE data is to delay the transmission of upcoming data for decoder buffer management. However, when in place of the expected decoder or end station, an intermediate station is the aimed receiver, which use among others may be to alter the content or simply delay the transmission after which this intermediate station has the task to re-transmit the original CBR content. Thus, the need to recover the original CBR stream including all IDLE data contained in the original CBR content arises.
Systems generally performing a demultiplex function on a received TDM channel are well known in the art. Many of these, such as U.S. Pat. No. 5,517,250, were designed to enable decoders to recover specific types of data, indicated by a unique Packet Identifier (PID) in the transport packet. While removing the Transport Packet layer, elementary video and audio data is distributed to the designated decoders. U.S. Pat. Nos. 5,557,538, 5,684,804, and 5,818,539, describe decoders and intermediate systems utilizing the channel demultiplexing systems. The demultiplexing system functions to redirect incoming data packets based upon the PIDs by associating one PID per destination.
One system, such as described in U.S. Pat. No. 5,619,337, performs a demultiplex function on a received TDM channel and is designed to store one complete Data Stream. However, this system requires a means for storing the actual arrival time per packet, necessitating the presence of a specialized re-transmission mechanism to recreate the Data Stream based upon the stored timing information, rather than a generic multiplex method.
What is needed is a demultiplex function for a TDM channel, capable of redirecting all Transport Packets associated with one datastream which may include a multitude of possible PIDs, while recreating the CBR of the original transmission by recreating all discarded IDLE packets to enable time delayed re-transmission utilizing a generic CBR TDM function.
It would thus be highly desirable to provide a demultiplex system that enables the association of the PID with the original data stream for enabling a multitude of PIDs to be directed towards one destination and, further that is designed to recreate the original CBR Data Stream by regenerating all transmitted packets, including IDLE packets discarded by the demultiplex function.
Moreover, it would be highly desirable to provide a demultiplex system designed to recreate the original CBR data stream by regenerating all transmitted packets, for creating a stored data stream suitable for re-transmission utilizing any generic CBR multiplex function.
An object of the present invention is to provide a TDM channel demultiplexing system and method that enables the association of the PID with the original data stream for enabling a multitude of PIDs to be directed towards one destination and, further that is designed to recreate original CBR Data Streams by regenerating all transmitted packets, including IDLE packets discarded by the demultiplex function.
Another object of the present invention is to provide a TDM channel demultiplexing system and method that is designed to recreate the original Data Stream by regenerating all transmitted packets, for creating a stored data stream suitable for re-transmission utilizing any generic multiplex function.
According to a preferred embodiment of the invention, there is provided a system and method for de-multiplexing Constant Bit Rate (CBR) encoded content transmitted over a single channel, where the content includes fixed size packets associated with one or more sources transmitting streams at an associated CBR. The method including: a) receiving a packet from the transport stream for placement in a temporary storage buffer; b) identifying each packet arriving from a source, the packet including an optional associated timestamp information indicating actual time of arrival of the packet; c) determining a time offset indicating a difference between actual time of arrival of the packet and an estimated time of arrival for the packet according to the CBR associated with the packet stream providing the identified packet; d) adjusting the timestamp information of the packet with the determined time offset to reflect proper sequence of packet; and, e) storing the packet having the adjusted timestamp information in a demultiplex queue associated with that packet stream, whereby the demultiplex queue includes packets having timestamp information enabling subsequent generation of a corresponding transport stream at the CBR. The system and method includes a mechanism for restoring IDLE data packets that have been discarded upon reception by the receiver.